/*
 * @Author: Starfish_DL
 * @Date: 2020-11-21 23:18:34
 * @LastEditors: Starfish_DL
 * @LastEditTime: 2020-11-22 19:40:30
 * @CurrentVersion: 1.0
 * @Description:
 */

#pragma once
#ifndef LINKQUEUEBOX_H
#define LINKQUEUEBOX_H
#define MAXVER_MATGRAPH 6

class Box
{
public:
    int x = 0;
    int y = 0;
    Box();
    Box(int a, int b);
    void DisBox();
    ~Box();
};

class BoxLinkNode
{
public:
    Box data;
    BoxLinkNode* next;
	BoxLinkNode();
    BoxLinkNode(Box a);
    BoxLinkNode(Box a, BoxLinkNode* next);
	~BoxLinkNode();
};

class BoxLinkQueue
{
public:
    BoxLinkNode* head;
    BoxLinkQueue(Box a);
    BoxLinkQueue(Box boxArray[],int n);
	BoxLinkQueue();
    int GetLength();
    void EnQueue(Box a);
    Box OutQueue();
    bool IsEmpty();
	~BoxLinkQueue();
};

class BoxSQueue
{
public:
    int head = -1;
    int down = -1;
    Box data[MAXVER_MATGRAPH * MAXVER_MATGRAPH];
    BoxSQueue(Box a);
    BoxSQueue();
    Box OutSQ();
    void EnSQ(Box a);
    int Length();
    bool IsEmpty();
    ~BoxSQueue();
};

#endif // !LINKQUEUEBOX_H
